// pages/statistics/statistics.js
import wxCharts from '../../common/wxcharts-min.js'
let lineChart = null, startPos = null, data = [];
Page({

  /**
   * 页面的初始数据
   */
  data: {
    dayCount: "0",                        // 今日揽件数量
    weekCount: "0",                       // 本周揽件数量
    monthCount: "0",                      // 本月揽件数量
    startTime: "",                          // 开始时间
    startTimeText: "",                      // 开始时间展示文本
    endTime: "",                            // 结束时间  
    endTimeText: "",                        // 结束时间展示文本
    isShowPop: false,                       // 展示时间弹窗
    //------------统计图--------------//
    canvasType: "no_ative", //canvas 绘制展示
    title_look: "拖动图标查看→",
    startXY: {
      x: 0,
      y: 0
    }, // 开始坐标
    endXY: {
      x: 0,
      y: 0
    }, // 结束坐标
    page: false,
    styles: "",
    select_index: 0,
    serivece: [],
    seriesData: [],
    maxNum: 0, // 当前统计图最大数据  
    coorDate: [],      //坐标轴数据
    crew_top:true,
    show_coor: false,    //是否展示坐标轴
    windowWidth: 0, // 宽度
    minDate: new Date('2020/05/01').getTime(),
    maxDate: new Date('2200/05/01').getTime()
  },

  /**
   * 展示时间弹框
   * @param {*} e 
   */
  showDatePop: function (e) {
    let dateType = e.currentTarget.dataset.type
    let data = {
      isShowPop: true,
      dateType: dateType,
      show_coor: false
    }
    let { startTime, endTime } = this.data
    if (dateType == 'startTime' && endTime) {
      data.minDate = endTime - 60 * 60 * 1000 * 24 * 14;
      data.maxDate = endTime;
    } else if (dateType == 'endTime' && startTime) {
      data.minDate = startTime;
      data.maxDate = startTime + 60 * 60 * 1000 * 24 * 14
    } else{
      data.minDate = new Date('2020/05/01').getTime();
      data.maxDate = new Date('2200/05/01').getTime();
    }

    this.setData(data)
  },

  /**
   * 关闭时间弹框
   */
  closeDatePop: function () {
    this.setData({
      isShowPop: false,
      show_coor: true
    })
  },

  /**
   * 修改时间
   * @param {*} e 
   */
  changeTime: function (e) {
    this.closeDatePop();

    let data = {};
    data[this.data.dateType] = e.detail;
    data[this.data.dateType + 'Text'] = wx.$timestamp(e.detail, 'day');
    this.setData(data);
  },

  /**
   * 搜索统计数据
   */
  searchStatisticsData: function () {
    if (!this.data.startTime) {
      return wx.$Toast('请选择开始时间');
    }
    if (!this.data.endTime) {
      return wx.$Toast('请选择结束时间');
    }
    if (this.data.endTime < this.data.startTime) {
      return wx.$Toast('结束时间不能小于开始时间');
    }
    this.dayReport();

  },

  /**
   * 获取揽件数量统计
   * 今日   本周    本月
   */
  getPackageCount: function () {
    wx.$api.getPackageCount().then(res => {
      console.log(res)
    })
  },

  canvas_chartData: function (categoriesData, seriesData) {
    console.log("调用")
    var windowWidth = 0;
    var res = wx.getSystemInfoSync();
    windowWidth = res.screenWidth - 40;

    this.setData({ windowWidth: windowWidth })
    if (categoriesData.length > 0 && seriesData.length > 0) {
      lineChart = new wxCharts({
        canvasId: 'lineCanvas',
        type: 'column',
        categories: categoriesData,
        animation: true,
        series: [{
          name: '成交量1',
          data: seriesData,
          format: function (val) {
            return val + '件';
          }
        }],
        yAxis: {
          format: function (val) {
            return parseInt(val.toFixed(2) + 1) + '';
            // return Math.round(val);
          },
          min: 0,         // 最小值
          max: Math.max(...seriesData) + 10,        // 最大值
          fontColor: '#000000',
          gridColor: '#000000',
          titleFontColor: '#000000',
          topTitleFontColor: "#000000",
          disabled: false,
          type: 'calibration'
        },
        xAxis: {
          fontColor: '#000000',
          gridColor: '#000000',
          disabled: false
        },
        width: windowWidth,
        height: 200,
        dataLabel: true, // 是否显示图标里面的数据
        dataPointShape: true, // 是否在图表中显示数据点图形标识
        enableScroll: true, // 是否开启拖动
        extra: {
          lineStyle: '#000000',
          legendTextColor: '#6EB9FF'
        },
        title: {
          name: "8888",
          color: '#000000'
        },
        legend: false, // 图标下方标识
        subtitle: {
          color: '#000000'
        }
      });
    } else {
      wx.showToast({
        title: '暂无更多数据',
        icon: "none"
      })
    }
  },
  touchstart: function (e) {
    lineChart.scrollStart(e);
  },
  touchmove: function (e) {
    lineChart.scroll(e);
  },
  touchend: function (e) {
    lineChart.scrollEnd(e);
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    /*
        this.canvas_chartData(["4-19", "4-20", "4-21", "4-22", "4-23", "4-24", "4-25", "4-26", "4-27", "4-28", "4-29", "4-30", "5-01", "5-02"], [11, 22, 33, 44, 55, 66, 11, 22, 33, 44, 55, 66, 11, 22])
    */
    //获取揽件统计
    this.totalReport();
    //获取下面的数据
    // this.dayReport();


  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },

  /**
   * totalReport 配送总揽
   */
  totalReport: function () {
    wx.$api.totalReport({}).then(res => {
      if (res.data.code != 200) {
        wx.$Toast(res.data.msg);
        return;
      }
      this.setData({
        dayCount: res.data.data.toady_cnt,                        // 今日揽件数量
        weekCount: res.data.data.week_cnt,                       // 本周揽件数量
        monthCount: res.data.data.mouth_cnt,                      // 本月揽件数量
      })

    });

  },

  /**
   * 揽件日报表
   */
  dayReport: function () {
    let that = this;
    console.log('start_time', that.data.startTime);
    if (!(parseInt(that.data.startTime) > 0)) return wx.$Toast('请选择开始时间');
    if (!(parseInt(that.data.endTime) > 0)) return wx.$Toast('请选择结束时间');
    let make_time_start = parseInt(that.data.startTime) / 1000;
    let make_time_end = parseInt(that.data.endTime) / 1000;
    wx.$api.dayReport({ make_time_start, make_time_end }).then(res => {
      if (res.data.code != 200) return wx.$Toast(res.data.msg);
      that.setData({
        maxNum: res.data.data.total_num,
        coorDate: {
          date: res.data.data.list.date,
          count: res.data.data.list.count
        },
        show_coor: true
      });
      that.canvas_chartData(res.data.data.list[0], res.data.data.list[1]);

    });

  }


})